Source Level Static Branch Prediction
نویسنده
چکیده
The ability to predict the directions of branches, especially conditional branches, is an important problem in modern computer architecture and advanced compilers. Many static and dynamic techniques have been proposed. Today, all state-of-the-art microprocessors have some form of hardware support for dynamic branch prediction. Static techniques, on the other hand, have not been widely studied because of the belief that they give poorer results. However, good static branch predictions are invaluable information for (static) compiler optimization or performance estimation. In this paper, we propose performing static branch prediction at the source code level. The assumption is that the source code contains information unavailable at the assembly or machine code level that may be used for branch prediction. Empirical studies on 14 integer Spec benchmarks indicate that the simple heuristics proposed can be e ective in practice.
منابع مشابه
Static Branch Prediction Using High-Level Language Control Structure
The ability to correctly predict conditional branch behavior at compilation time enables compilers to protably apply code optimizations as well as to improve code layout and achieve a better schedule by increasing instruction level parallelism. Prole-based static prediction produces accurate predictions but requires programmer intervention. Analternativeis to applystatic(i.e., heuristic-based)b...
متن کاملWorst-Case Execution Time Analysis for Dynamic Branch Predictors
Branch prediction mechanisms are becoming commonplace within modern microprocessors. For developers of real-time control systems, the mechanisms present predictability problems. The reasons are they increase the difficulty in analysing software for its Worst-Case Execution Time without introducing unmanageable pessimism and they increase the variability of the software’s execution times. In thi...
متن کاملThe Schemes and Performances of Dynamic Branch predictors
The techniques of Instruction Level Parallelism (ILP) and pipeline have been used well to speed up the execution of instructions. The conditional branches are the critical factor to the effectiveness of a deep pipeline since the branch instructions can always break the flow of instructions through the pipeline and result in high execution cost. In order to achieve better CPU performance, many s...
متن کاملUsing Decision Trees to Improve Program-Based and Profile-Based Static Branch Prediction
Improving static branch prediction accuracy is an important problem with various interesting applications. First, several compiler optimizations such as code layout, scheduling, predication, etc. rely on accurate static branch prediction. Second, branches that are statically accurately predictable can be removed from the dynamic branch predictor thereby reducing aliasing. Third, for embedded mi...
متن کاملAlternative Implementations of Two - Level Adaptive Branch
As the issue rate and depth of pipelining of high performance Superscalar processors increase, the importance of an excellent branch predictor becomes more vital to delivering the potential performance of a wide-issue, deep pipelined microarchitecture. We propose a new dynamic branch predictor (Two-Level Adaptive Branch Prediction) that achieves substantially higher accuracy than any other sche...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Comput. J.
دوره 42 شماره
صفحات -
تاریخ انتشار 1999